package com.atguigu.demo;

/**
 * Created by Smexy on 2022/10/11
 *
 *      lamda表达式 其实就是实例化@FunctionalInterface 所标注接口的 一种简化方式
 *
 *      @FunctionalInterface 标注的接口只有一个抽象方法！
 *
 *      本质： 是@FunctionalInterface 所标注接口的一个对象
 *
 *      () -> { System.out.println("我爱北京天安门");}
 *
 *      表达的是:  某个 @FunctionalInterface 接口的一个子类实现
 *      语法:  -> 把表达式一分为二。
 *            -> 左侧代表参数列表，右侧代表方法体。
 *            -> 右侧的方法体，如果有只有一行代码，那么 {} 可以省略
 */
public class LamdaDemo
{
    public static void main(String[] args) {

        //匿名内部类，创建一个实现类，只使用一次
        Runnable r1 = new Runnable() {
            @Override
            public void run() {
                System.out.println("我爱北京天安门");
            }
        };

        r1.run();


        // () -> System.out.println("我爱北京天安门")  等价于  new Runnable() {}
        Runnable r2 = () -> System.out.println("我爱北京天安门");

        r2.run();

    }
}
